package lanQiaoBei.数据结构.散列表_哈希表;
import java.io.*;
import java.util.*;
/*题目描述(模拟散列表)
维护一个集合，支持如下几种操作：

“I x”，插入一个数x；
“Q x”，询问数x是否在集合中出现过；
现在要进行N次操作，对于每个询问操作输出对应的结果。

输入格式
第一行包含整数N，表示操作数量。

接下来N行，每行包含一个操作指令，操作指令为”I x”，”Q x”中的一种。

输出格式
对于每个询问指令“Q x”，输出一个询问结果，如果x在集合中出现过，则输出“Yes”，否则输出“No”。

每个结果占一行。

数据范围
1≤N≤100000
−109≤x≤109*/
public class P2 {//开发寻址法
    static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    final static int N=300007,NULL=0x3f3f3f3f;
    static int[]h=new int[N];

    static int find(int x){
           int k=(x%N+N)%N;
           while(h[k]!=NULL&&h[k]!=x){
               k++;
               if(k==N)k=0;
           }
           return k;
    }
    public static void main(String[]args)throws Exception{
           Arrays.fill(h,0x3f3f3f3f);
           int k=Integer.parseInt(br.readLine());
           while(k-->0){
               String[]ss=br.readLine().split(" ");
                int x=Integer.parseInt(ss[1]);
                int i=find(x);
                if("I".equals(ss[0])){
                    h[i]=x;
                }else{
                    if(h[i]==x)System.out.println("Yes");
                    else System.out.println("No");
                }
           }
    }
}
